# # 创建一个列表`list1`，其包含元素 1, 2, 3, 4, 5
# list1 = [1,2,3,4,5]
# # 向`list1` 添加一个元素 6
# list1.append(6)
# # 从`list1` 中删除元素 3
# list1.pop(2)
# # 修改`list1` 中的第二个元素值为 8
# list1[1] = 8
# # 遍历`list1`，打印每个元素的值
# for i in list1:
#    print(i)
# # 利用循环，将一个新列表 `7, 8, 9]` 的每个元素添加到`list1` 的末尾
# x=7
# while x<10:
#     list1.append(x)
#     x+=1
# print(list1)
#
# # 使用一个命令，将列表 `10, 11, 12]` 添加到`list1` 的末尾
# list1.extend([10,11,12])
# print(list1)
#
# # 使用切片操作，获取`list1` 第三个元素到第五个元素（包含第五个元素）
# print(list1[2:5:1])
#
# # 将`list1` 的第三个元素修改为两个新元素 `13, 14]`（不是列表中的一个列表，而是将两个新元素插入到指定位置）
# list1.insert(2,13)
# list1.insert(3,14)
# print(list1)

my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
# 向my_list中添加一个元素"fig"
my_list.append('fig')
print(my_list)
# 从my_list中删除元素"banana"
my_list.remove('banana')
print(my_list)
# 将元素7修改为字符串"grape"
my_list[3] = 'grape'
print(my_list)
# 查找并打印元素"cherry"的索引值
n=my_list.index('cherry')
print(n)
# 遍历my_list并打印每个元素
for i in my_list:
    print(i)
# 在"cherry"后面插入新元素"kiwi"
my_list.insert(5,'kiwi')
print(my_list)
# 使用索引查找并打印第三个元素
print(my_list[2])
# 使用负数索引找到并打印倒数第二个元素
print(my_list[-2])
# 使用切片操作获取第三个至第七个元素并打印结果
print(my_list[2:7:1])
# 使用切片操作反转整个列表并打印结果
print(my_list[::-1])
#对列表中的字符串进行排序，并保留数字在原位
n = 0
str_list = []
num_list = []
for index,element in enumerate(my_list):
    if type(element) == str :
        str_list.append(element)
    else:
        num_list.append(element)
str_list.sort()
for index,element in enumerate(my_list):
    if type(element) == str :
        my_list[index] = str_list[n]
        n += 1
print(my_list)

# # 将my_list中的数字替换为它们对应的字符串形式（如1->'one'），不改变列表中原有的字符串
# num_to_words = {
#     2:'two',
#     3:'three',
#     5:'five',
#     9:'nine'
# }
# for i in my_list:
#     if type(i) == int:
#         print(num_to_words[i])
#     else:print(i)

# # 创建一个列表包含从1到100的所有偶数。
# import random
#
# ou = []
# for i in range(1,101):
#     if i%2==0:
#         ou.append(i)
# print(ou)
# # 将上述列表中所有偶数替换为它们的平方
# ou = [x**2 if x % 2 == 0 else x for x in ou]
# print(ou)
# # 从上述列表中删除所有大于1000的数字
# ou_1000 = []
# for i in reversed(ou) :
#     if i >= 1000:
#        ou.remove(i)
# print(ou)
# # 将列表逆序
# ou.reverse()
# print(ou)
# # 使用切片操作取出列表中的前10个元素
# print(ou[0:10:1])
# # 将一个新列表`[101, 102, 103]`加到现有列表的末尾
# ou.extend([101, 102, 103])
# print(ou)
# # 计算列表中元素的平均值
# cou = 0
# n = 0
# for i in ou:
#     cou = cou+ou[n]
#     n+=1
# print(cou)
# # 找到列表中的最大值和最小值
# x = 1
# max = ou[0]
# min = ou[0]
# for i in ou:
#     if ou[x] > max:
#         max = ou[x]
#         x+=1
# for i in ou:
#     if ou[x] < min:
#         min = ou[x]
#         x+=1
# print(max)
# print(min)
# # 找出列表中第一次出现的11的索引位置
# print(ou.index(101))
# # 用循环遍历列表，把每个数字替换为其对应的字符形式（例如：1替换为'1'）。注意使用不同类型的循环来实现
# for idx in range(len(ou)):
#     ou[idx] = str(ou[idx])
# for i in ou:
#     print(type(i))
# # 将列表中的所有元素转换成浮点数形式
# for idx in range(len(ou)):
#     ou[idx] = float(ou[idx])
# for i in ou:
#     print(type(i))
# # 找出列表中所有大于50的元素个数
# ou_50 = []
# num = 0
# for i in ou:
#     if i > 50:
#         ou_50.append(i)
# for x in ou_50:
#     num += 1
# print(num)
# # 在列表的第3个位置插入数字99
# ou.insert(2,99)
# print(ou)
# # 删除列表中的最后一个元素
# ou.pop()
# print(ou)
# # 使用列表推导式创建一个新列表，包含原列表中每个数字乘以2的结果
# ou_2 = [x*2 for x in ou]
# print(ou_2)
# # 将列表分成两部分，一部分是小于等于50的数，另一部分是大于50的数
# ou_big_50 = []
# ou_small_50 = []
# for i in ou :
#     if i <= 50:
#         ou_small_50.append(i)
#     else:
#         ou_big_50.append(i)
# print(f'小于等于50的有：{ou_small_50}，大于50的有：{ou_big_50}')
# # 将列表转换为一个字典，其中列表元素作为键，其在列表中的索引作为值
# from collections import defaultdict
# ou_dict = defaultdict(list)
# for index,element in enumerate(ou):
#     ou_dict[element].append(index)
# print(ou_dict,type(ou_dict))
# # 使用`enumerate`函数遍历列表，并打印元素及其索引
# for index,element in enumerate(ou):
#     print(element,index)
# # 从列表中随机取出一个元素
# i = random.choice(ou)
# print(i)
# # 将列表保存到一个txt文件里，每个元素占一行
# file = open('ou.txt','w',encoding='utf-8')
# for i in ou:
#     file.write(f'{i}\n')